package com.xckj.ibox.global;

import retrofit2.Call;

import com.xckj.ibox.bean.AgreementBean;
import com.xckj.ibox.bean.BannerBean;
import com.xckj.ibox.bean.BaseBean;
import com.xckj.ibox.bean.HomeGoodsBean;
import com.xckj.ibox.bean.HomeMenuBean;
import com.xckj.ibox.bean.LoginBean;
import com.xckj.ibox.bean.NoticeBean;
import com.xckj.ibox.bean.UserInfoBean;

import java.util.List;

import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;

/**
 * @Author: ChenYao
 * @Describe: API接口
 * @Date: 2023/6/12 16:31
 */
public interface ApiService {
    /**
     * 发送验证码
     *
     * @param phone 手机号码
     * @param type  类型
     * @return 发送结果
     */
    @POST("login/sendCode")
    @FormUrlEncoded
    Call<BaseBean<String>> sendCode(@Field("phone") String phone, @Field("type") String type);

    /**
     * 登录
     *
     * @param phone     手机号码
     * @param code      验证码
     * @param permanent 自动登录
     * @return 登录结果
     */
    @POST("Newapi/captchaLogin")
    @FormUrlEncoded
    Call<BaseBean<LoginBean>> login(@Field("phone") String phone, @Field("captcha") String code, @Field("permanent") String permanent);

    /**
     * 获取Banner
     *
     * @return banner
     */
    @GET("index/bannerList")
    Call<BaseBean<List<BannerBean>>> getBanner();

    /**
     * 获取首页菜单
     *
     * @return 首页菜单
     */
    @GET("index/menuList")
    Call<BaseBean<List<HomeMenuBean>>> getHomeMenu();

    /**
     * 获取用户信息
     *
     * @param tokens token
     * @return 用户信息
     */
    @GET("user/userInfo")
    Call<BaseBean<UserInfoBean>> getUserInfo(@Query("tokens") String tokens);

    /**
     * 获取首页商品
     *
     * @param page     页码
     * @param pagesize 条目数
     * @param type     类型
     * @return 商品
     */
    @GET("goods/goodsList")
    Call<BaseBean<HomeGoodsBean>> getHomeGoods(@Query("page") int page, @Query("pagesize") int pagesize, @Query("type") int type);

    /**
     * 获取协议
     *
     * @return 协议
     */
    @GET("index/xieyiDetail")
    Call<BaseBean<AgreementBean>> getAgreement();

    /**
     * 获取公告
     *
     * @return 公告
     */
    @GET("index/noticeList")
    Call<BaseBean<List<NoticeBean>>> getNotice();
}
